// 封装倒计时逻辑函数

import { ref, computed, onUnmounted } from 'vue'
import dayjs from 'dayjs'

export const useCountDown = () => {
    // 1. 响应式数据
    const time = ref(0)
    let timer = null
    const formatTime = computed(() => {
        return dayjs.unix(time.value).format('mm分ss秒')
    })
    // 2. 开启倒计时函数
    const start = (currentTime) => {
        // 开始倒计时的逻辑
        // 核心逻辑 每个1s 减 1
        time.value = currentTime;
        timer = setInterval(() => {
            time.value--
        }, 1000)
    }
    // 组件销毁时清除定时器
    onUnmounted(() => {
        timer && clearInterval(timer)
    })
    return {
        formatTime, start
    }
}